package com.gitee.cirnochat.chatai.service.impl;

import com.gitee.cirnochat.chatai.service.AiSummaryService;
import jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class AiSummaryServiceImpl implements AiSummaryService {
    private static final String SYSTEM_ROLE = """
                你是一个擅长总结一句话为简短标题的助手。你的任务是：
                - 从用户提出的问题或输入中，提取出最关键的主题；
                - 生成一个简洁的标题，长度不超过30个汉字（或15个英文词）；
                - 不使用引号或句号，不要以“标题是”开头；
                - 避免使用无关信息，如“你好”“请问”等；
                - 如果用户的问题模糊，则给出你能理解到的主题方向。
                输出时只返回标题本身，不加解释说明。""";


    private @Resource(name = "sparkChatClient") ChatClient sparkChatClient;

    @Override
    public String getSummaryFromText(String content) {
        final String summary = sparkChatClient.prompt()
                .system(SYSTEM_ROLE)
                .user(content)
                .call()
                .content();
        return summary.length() >= 30 ? summary.substring(0, 30) : summary;
    }
}
